﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Sio.Mdm.Entities;

namespace Sio.Mdm.Types.Database
{
    [Entities.Entity(
                "Sio.Mdm.BF.Ldap.ILdapPravilaService, Sio.Mdm.BF.Ldap",
                TableName = "LDAP_PRAVILA"
            )]
    public interface LdapPravilo : IEntity
    {
        [PrimaryKey(Name = "LDAP_PRAVILO_ID", GeneratorName = "GEN_LDAP_PRAVILA")]
        int LdapPraviloID { get; set; }

        [Field(Name = "ORGARNIZACIJA_ID", ForeignKey = true)]
        int OrgarnizacijaID { get; set; }

        [Field(Name = "IME")]
        string Ime { get; set; }

        [Field(Name = "OPIS")]
        string Opis { get; set; }

        [Field(Name = "LDAP_STREZNIK_ID")]
        int LdapStreznikID { get; set; }

        [Field(Name = "LDAP_PREDLOGA_ID")]
        int LdapPredlogaID { get; set; }

        [Field(Name = "BASE_DN")]
        string BaseDN { get; set; }

        [Field(Name = "TIP_SINHRONIZACIJE")]
        int TipSinhronizacije { get; set; }

        [Field(Name = "AKTIVNO")]
        bool Aktivno { get; set; }

        [Field(Name = "DATUM_VNOSA")]
        DateTime DatumVnosa { get; set; }

        [Field(Name = "DATUM_SPREMEMBE")]
        DateTime DatumSpremembe { get; set; }    
    }

    [Entities.Entity(
                "Sio.Mdm.BF.Ldap.ILdapPravilaRazsirjenoService, Sio.Mdm.BF.Ldap",
                TableName = "LDAP_PRAVILA_RAZSIRJENO"
            )]
    public interface LdapPraviloRazsirjeno : LdapPravilo
    { 
        [Field(Name = "STREZNIK_IME")]
        string StreznikIme { get; set; }
        
        [Field(Name = "STREZNIK_OPIS")]
        string StreznikOpis { get; set; }

        [Field(Name = "STREZNIK_NASLOV")]
        string StreznikNaslov { get; set; }

        [Field(Name = "STREZNIK_ROOT_DN")]
        string StreznikRootDN { get; set; }

        [Field(Name = "PREDLOGA_IME")]
        string PredlogaIme { get; set; }

        [Field(Name = "PREDLOGA_OPIS")]
        string PredlogaOpis { get; set; }

        [Field(Name = "SIN_ID")]
        int SinID { get; set; }

        [Field(Name = "SIN_OBJKET_ID")]
        int SinObjektID { get; set; }

        [Field(Name = "SIN_OBJKET_TIP_ID")]
        int SinObjektTipID { get; set; }

        [Field(Name = "TIPI_OBJEKTOV_NAZIV")]
        string TipObjektaNaziv { get; set; }

        [Field(Name = "ORGARNIZACIJA_NAZIV")]
        string OrgarnizacijaNaziv { get; set; }
        
    }

    [Entities.StoredProcedureEntity(
                    "Sio.Mdm.BF.Ldap.ILdapPravilaEntiteteService, Sio.Mdm.BF.Ldap",
                    TableName = "SP_LDAP_PRAVILO_ENTITETE", StoredProcedureName = "SP_LDAP_PRAVILO_ENTITETE({0})"
                )]
    public interface LdapPraviloEntitete : IEntity
    {
        [Field(Name = "IDM_STEVILKA")]
        int IdmStevilka { get; }
    }


}
